<!DOCTYPE html>
<html>
    <head>
        <title>Facebook Login JavaScript Example</title>
        <script src="jquery.min.js"></script>
        <meta charset="UTF-8">
    </head>
    <body>
        <script>
            var name, gender, user_likes,user_id;
            var all_likes_ids = [];
            var all_likes_names = [];
            // This is called with the results from from FB.getLoginStatus().
            function statusChangeCallback(response) {
                console.log('statusChangeCallback');
                console.log(response);
                // The response object is returned with a status field that lets the
                // app know the current login status of the person.
                // Full docs on the response object can be found in the documentation
                // for FB.getLoginStatus().
                if (response.status === 'connected') {
                    // Logged into your app and Facebook.
                    testAPI();
                } else if (response.status === 'not_authorized') {
                    // The person is logged into Facebook, but not your app.
                    document.getElementById('status').innerHTML = 'Please log ' +
                            'into this app.';
                } else {
                    // The person is not logged into Facebook, so we're not sure if
                    // they are logged into this app or not.
                    document.getElementById('status').innerHTML = 'Please log ' +
                            'into Facebook.';
                }
            }

            // This function is called when someone finishes with the Login
            // Button.  See the onlogin handler attached to it in the sample
            // code below.
            function checkLoginState() {
                FB.getLoginStatus(function(response) {
                    statusChangeCallback(response);
                });
            }

            window.fbAsyncInit = function() {
                FB.init({
                    appId: '1511095452490931', //'1511095452490931'   '1396111244023903',
                    cookie: true, // enable cookies to allow the server to access 
                    // the session
                    xfbml: true, // parse social plugins on this page
                    version: 'v2.1' // use version 2.1
                });

                // Now that we've initialized the JavaScript SDK, we call 
                // FB.getLoginStatus().  This function gets the state of the
                // person visiting this page and can return one of three states to
                // the callback you provide.  They can be:
                //
                // 1. Logged into your app ('connected')
                // 2. Logged into Facebook, but not your app ('not_authorized')
                // 3. Not logged into Facebook and can't tell if they are logged into
                //    your app or not.
                //
                // These three cases are handled in the callback function.

                FB.getLoginStatus(function(response) {
                    statusChangeCallback(response);
                });

            };


            // Load the SDK asynchronously
            (function(d, s, id) {
                var js, fjs = d.getElementsByTagName(s)[0];
                if (d.getElementById(id))
                    return;
                js = d.createElement(s);
                js.id = id;
                js.src = "//connect.facebook.net/en_US/sdk.js";
                fjs.parentNode.insertBefore(js, fjs);
            }(document, 'script', 'facebook-jssdk'));

            function call_me(url) {
                $.ajax({
                    url: url,
                    type: "get",
                    success: function(response) {

//                        console.log('inside call me');
                        $(response.data).each(function(index, like) {
                            all_likes_ids.push(like.id);
                            all_likes_names.push(like.name)
                        });

//                        console.log("new likes : "+all_likes_ids);
//                        console.log("new likes : "+all_likes_names);
//                        console.log("new likes count : "+all_likes_ids.length);
//                        console.log('link for next result :' + response.paging.next);
                        if (response.paging !== undefined) {
                            call_me(response.paging.next);
                        }
                        if(response.paging.next === undefined){
                            $.ajax({
                                url: "FBAction.do",
                                data: "name=" + name + "&gender=" + gender + "&response_list=" + JSON.stringify(all_likes_ids) + "&user_id=" +user_id,
                                dataType: 'json',
                                type: "post",
                                success: function(data, textStatus, jqXHR) {
                                    alert("Success ");
                                }
                            });
                        }}
                });
            }
            // 
// Here we run a very simple test of the Graph API after login is
            // successful.  See statusChangeCallback() for when this call is made.
            function testAPI() {
                console.log('Welcome!  Fetching your information.... ');
                //var name, gender, user_likes;
                var liked_item_category = [], liked_item_name = [];
//                var d = new Date();
//                var month = d.getMonth() + 1;
//                if (month < 10) {
//                    month = "0" + month;
//                }
//
//                var date = d.getFullYear() + "-" + (month) + "-" + d.getDate();
                //console.log();



                FB.api('/me', function(response) {
                    console.log('Successful login for: ' + response.name + response.email + response.gender);
                    user_id=response.id;
                    name = response.name;
                    gender = response.gender;
                    console.log('Data: '+ user_id + name +" "+ gender);


                    FB.api('/me/likes', function(response) {
                        if (response && !response.error) {
                            // console.log(JSON.stringify(response));

                            $(response.data).each(function(index, unit) {
                                all_likes_ids.push(unit.id);
                                all_likes_names.push(unit.name);

                            });
//                            console.log("likes : "+all_likes_ids);
                            
                            if (response.paging.next !== undefined) {
//                                console.log('link for next result :' + response.paging.next);
                                call_me(response.paging.next);
                            }

//                        console.log(liked_item_category);
//                        console.log(liked_item_name);

//                            $.ajax({
//                                url: "FBAction.do",
//                                data: "name=" + name + "&gender=" + gender + "&response_list=" + JSON.stringify(all_likes_ids),
//                                dataType: 'json',
//                                type: "post",
//                                success: function(data, textStatus, jqXHR) {
//                                    alert("Success ");
//                                }
//                            });
                        }
                    });

                    //make api v=call                                           
                });





//                var likes_counter = [], name_of_friend = [];                
//                FB.api('/me/feed', function(response) {
//                    //      console.log(JSON.stringify(response));
//                    //console.log('Successful login for: ' + response.name + response.email + response.gender + response.locale + response.user_friends);
//
//                    $(response.data).each(function(index, feed) {
//                        //            console.log(re);
//                        if (feed.likes !== undefined) {
//                            $(feed.likes.data).each(function(index, like) {
//                                var no_of_likes = likes_counter[like.name];
//                                //                    console.log('no of likes='+no_of_likes);
//                                if (no_of_likes !== undefined) {
//                                    likes_counter[like.name] = no_of_likes + 1;
//                                }
//                                else {
//                                    likes_counter[like.name] = 1;
//                                }
//                            });
//                        }
//                    });
//                    console.log(likes_counter);
//                    
//                    
//                    $.ajax({
//                        url: "FBAction.do",
//                        data: "likes_counter=" + likes_counter,
//                        type: "post",
//                        success: function(data, textStatus, jqXHR) {
//                            alert("Success " + likes_counter);                           
//                        }
//                    });
//
//                    //        console.log(JSON.stringify(likes_counter));
//
//                    //console.log("date := "+date);
//                });

                //    FB.api('/me/friends', function(response) {
                //      console.log(JSON.stringify(response));
                //    });

                //   var body = 'Reading JS SDK documentation'; 
                //    FB.api('/me/feed', 'post', { message: body }, function(response) {
                //  if (!response || response.error) {
                //    alert('Error occured');
                //  } else {
                //    alert('Post ID: ' + response.id);
                //  }
                //});
            }
        </script>

        <!--
          Below we include the Login Button social plugin. This button uses
          the JavaScript SDK to present a graphical Login button that triggers
          the FB.login() function when clicked.
        -->

    <fb:login-button scope="public_profile,email,user_friends,user_status,publish_actions,read_stream,read_friendlists,user_likes" onlogin="checkLoginState();">
    </fb:login-button>

    <div id="status">
    </div>

</body>
</html>